<?php

require_once "based.php";
require_once "recaptchalib.php";
require_once "config.php";

class ContactoCTRL
{
    private $error, $mensaje, $recap;
    function __construct($pkey) 
    {
        $this->error ="";
        $this->recap = $pkey;
    }
    function validarContacto($nombre, $email, $mensaje, $recap_chal, $recap_resp, $id_usuario)
    {
        if(!$this->validarNombre($nombre))
        {
            $this->error = "El nombre ingresado no es válido";
            return false;
        }
        else if(!$this->validarEmail($email))
        {
            $this->error = "El email ingresado no es válido";
            return false;
        }
        else if(!$this->validarMensaje($mensaje))
        {
            $this->error = "El mensaje no puede estar vacío";
            return false;
        }
        else if(!$this->validarNombre($nombre))
        {
            $this->error = "El nombre ingresado no es válido";
            return false;
        }
        else 
        {
            $resp = recaptcha_check_answer ($this->recap, $_SERVER["REMOTE_ADDR"], $recap_chal, $recap_resp);
            if (!$resp->is_valid)
            {
                $this->error = "Error en la imagen de verificación.";
                return false;
            }
            else
            {
                $db = new BaseDatos(DBHOST, DBUSER, DBPASS, DBBASE);
                $sql = "INSERT INTO soporte(id_usuario, nombre_apellido, email, mensaje)
                VALUES ('".($id_usuario+0)."', 
                        '".mysql_real_escape_string($nombre)."',
                        '".mysql_real_escape_string(strtolower($email))."',
                        '".mysql_real_escape_string($mensaje)."')";
                $db->insertUpdate($sql);
                unset($db);
                $this->error = false;
                return true;
            }
        }
    }

    private function validarEmail($email)
    {
        return filter_var($email, FILTER_VALIDATE_EMAIL)!==false;
    }
    private function validarNombre($nombre)
    {
        return $nombre!='' && !preg_match('/[0-9]/', $nombre);
    }
    private function validarMensaje($mensaje)
    {
        return $mensaje!='';
    }
    
    public function getError() {
        return $this->error;
    }

    

    public function __destruct() 
    {
        unset($this->db);
    }
}
?>